-
Notifications
You must be signed in to change notification settings - Fork 112
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enhance tests #226
Enhance tests #226
Conversation
@Harry-Chen , thanks for the initiative! Seems like a great PR! Do you have any idea why this failed for GCC 12? We used to test on GCC 11 and it always worked fine. Also, it seems to have failed on your account as well... |
@Harry-Chen , obviously the failure didn't even happen during the tests, it happened during the benchmarks, so it is likely that it is due to a bug in one of the libraries we use for benchmarking, not our own library. Could you just try changing this to GCC 11? |
I can reproduce the segmentation fault locally with GCC 12. I'd prefer trying to fix it first, and treat changing back to GCC 11 as the last resort. |
This SIGSEGV goes away when compiling with address sanitizer. Valgrind says:
So there is a hidden illegal write that should be fixed. It just happens not to crash with other compilers, I believe. |
@liuzicheng1987 I do not think it is a problem with 3rd party libraries, but within GDB says the last frame is:
It runs placement new:
So After tracing down, the reflect-cpp/include/rfl/parsing/Parser_default.hpp Lines 256 to 270 in b0e4bb7
Along with Valgrind output, we can see the execution chain:
I do not currently have the ability to dig further, since I am not familiar with the complex templates used by reflect-cpp. |
Thanks so much, I will take a look. |
reflect-cpp-all-format-benchmarks.gz And here's a statically-linked binary that could 100% reproduce the issue, should you need it. |
@Harry-Chen, thanks for bringing this to my attention. The problem is quite a bit deeper and more complex than originally thought, but I will write a fix as quickly as I can. Please give me a couple of days, it requires some deeper changes. |
@Harry-Chen, but I will certainly merge your PR once I am done. I think your PR is great! Thank you so much! |
Sure, take your time. Writing correct C++ is never easy 🤦 |
@Harry-Chen , the problem should be resolved with 29c4201. Could you merge the main branch and add a separate test for GCC 11? The tests should run through for that one, and then I would be too happy to merge your PR. |
…ry time Signed-off-by: Shengqi Chen <[email protected]>
Signed-off-by: Shengqi Chen <[email protected]>
Signed-off-by: Shengqi Chen <[email protected]>
Signed-off-by: Shengqi Chen <[email protected]>
Signed-off-by: Shengqi Chen <[email protected]>
Signed-off-by: Shengqi Chen <[email protected]>
Signed-off-by: Shengqi Chen <[email protected]>
Signed-off-by: Shengqi Chen <[email protected]>
Signed-off-by: Shengqi Chen <[email protected]>
Signed-off-by: Shengqi Chen <[email protected]>
Signed-off-by: Shengqi Chen <[email protected]>
THe newly-installed versions have some troublesome issues. Signed-off-by: Shengqi Chen <[email protected]>
Signed-off-by: Shengqi Chen <[email protected]>
Signed-off-by: Shengqi Chen <[email protected]>
Signed-off-by: Shengqi Chen <[email protected]>
Signed-off-by: Shengqi Chen <[email protected]>
… and mac Signed-off-by: Shengqi Chen <[email protected]>
174c71d
to
61eadde
Compare
@liuzicheng1987 I added gcc-11 as requested. Additionally I added ccache to speed up compilation when possible. |
Great work! Thank you so much! |
Modifications include:
workflow_dispatch
)New CI runs in my fork: